package com.ruoyi.syrw.domain.vo;

import java.util.Date;

import cn.hutool.core.date.DateUtil;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.ruoyi.common.annotation.ExcelDictFormat;
import com.ruoyi.common.convert.ExcelDictConvert;
import com.ruoyi.syrw.domain.bo.BiExcelTypeBo;
import com.ruoyi.ycl.domain.vo.BsJctzVo;
import com.ruoyi.yp.domain.vo.BsYpVo;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;
import java.util.List;


/**
 * 数据报告视图对象 syrw_bs_data_report
 *
 * @author zyb
 * @date 2024-04-30
 */
@Data
@ExcelIgnoreUnannotated
public class BsDataReportVo {

    private static final long serialVersionUID = 1L;

    /**
     * 唯一标识一份试验任务
     */
    @ExcelProperty(value = "唯一标识一份试验任务")
    private Long reportId;

    /**
     * 所属试验类型
     */
    @ExcelProperty(value = "所属试验类型id")
    private Long syType;

    /**
     * 所属试验类型 名称
     */
    private String syTypeStr;

    /**
     * 所属试验室id
     */
    @ExcelProperty(value = "所属试验室id")
    private Long deptId;
    private String deptName;

    /**
     * 试验名称
     */
    @ExcelProperty(value = "试验名称")
    private String reportName;

    /**
     * 试验日期
     */
    @ExcelProperty(value = "试验日期")
    private Date reportDate;

    /**
     * 试验截至日期
     */
    private Date reportDateEnd;

    /**
     * 试验日期label
     */
    private String shiyrqLabel;

    /**
     * 报告编号
     */
    @ExcelProperty(value = "报告编号")
    private String bgCode;

    /**
     * 样品编号
     */
    @ExcelProperty(value = "样品编号")
    private String ypCode;

    /**
     * 记录编号
     */
    @ExcelProperty(value = "记录编号")
    private String jlCode;

    /**
     * 所属合同id（可能与dept_id存在信息冗余待确定）
     */
    @ExcelProperty(value = "所属合同id", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "可=能与dept_id存在信息冗余待确定")
    private Long contractId;

    /**
     * 包含excel份数
     */
    @ExcelProperty(value = "包含excel份数")
    private Integer excelNums;


    /**
     * excelType类型列表
     */
    private List<RefReportExcelVo> excelTypeList;

    private List<Long> excelTypeIdList;

    /**
     * 样品信息
     */
    private BsYpVo ypVo;

    /**
     * 进场台账id
     */
    private Long tzId;
    private BsJctzVo tzVo;

    /**
     * 检测项目
     * 所有的excel的名称拼接
     */
    private String jiancxm;

    /**
     * 试验任务检测结果
     */
    private Integer reportResult;

    /**
     * 处理方法
     */
    private String clff;
    /**
     * 处理结果
     */
    private String cljg;

    // copy 样品
    /**
     * 样品日期
     */
    @ExcelProperty(value = "样品日期")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date ypDate;
    private String ypDataStr;

    public void setYpDate(Date ypDate) {
        this.ypDate = ypDate;
        this.ypDataStr = DateUtil.format(ypDate, "yyyy年MM月dd日");
    }

    /**
     * 存放位置 , 取样位置
     */
    private String location;

    /**
     * 样品名称excel中使用
     */
    private String yangpmc;


    /**
     * 抽检标段试验室id
     */
    private Long checkDeptId;

    /**
     * 物联引入数据json串
     */
    private String dataJson;



}
